package com.risk.management.mapper;

import com.risk.management.entity.ProjectMember;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * 项目成员Mapper接口
 */
public interface ProjectMemberMapper {
    /**
     * 根据ID查询项目成员
     */
    ProjectMember selectById(Long id);
    
    /**
     * 根据项目ID查询项目成员
     */
    List<ProjectMember> selectByProjectId(Long projectId);
    
    /**
     * 根据用户ID查询项目成员
     */
    List<ProjectMember> selectByUserId(Long userId);
    
    /**
     * 根据项目ID和用户ID查询项目成员
     */
    ProjectMember selectByProjectIdAndUserId(@Param("projectId") Long projectId, @Param("userId") Long userId);
    
    /**
     * 根据项目ID和角色查询项目成员
     */
    List<ProjectMember> selectByProjectIdAndRole(@Param("projectId") Long projectId, @Param("role") Integer role);
    
    /**
     * 插入项目成员
     */
    int insert(ProjectMember projectMember);
    
    /**
     * 更新项目成员
     */
    int update(ProjectMember projectMember);
    
    /**
     * 删除项目成员
     */
    int deleteById(Long id);
    
    /**
     * 根据项目ID和用户ID删除项目成员
     */
    int deleteByProjectIdAndUserId(@Param("projectId") Long projectId, @Param("userId") Long userId);
    
    /**
     * 根据项目ID删除所有项目成员
     */
    int deleteByProjectId(Long projectId);
    
    /**
     * 检查用户是否是项目成员
     */
    int checkIsMember(@Param("projectId") Long projectId, @Param("userId") Long userId);
} 